gnus-summary-make-false-rootnil, Gnus will gather all loose subtrees
into one big tree and create a dummy root at the top. (Wait a
minute. Root at the top? Yup.) Loose subtrees occur when the
real root has expired, or you've read or killed the root in a
previous session.
When there is no real root of a thread, Gnus will have to fudge something. This variable says what fudging method Gnus should use. There are four possible values:
adoptdummygnus-summary-dummy-line-format is used to
specify the format of the dummy roots. It accepts only one
format spec: ‘S’, which is the subject of the
article. See Formatting
Variables. If you want all threads to have a dummy
root, even the non-gathered ones, set
gnus-summary-make-false-root-always to
t.emptygnus-summary-same-subject as the subject (see
Summary
Buffer Format).)nonenilgnus-summary-gather-subject-limitnil, Gnus requires
an exact match between the subjects of the loose threads
before gathering them into one big super-thread. This might
be too strict a requirement, what with the presence of stupid
newsreaders that chop off long subject lines. If you think
so, set this variable to, say, 20 to require that only the
first 20 characters of the subjects have to match. If you set
this variable to a really low number, you'll find that Gnus
will gather everything in sight into one thread, which isn't
very helpful.
If you set this
variable to the special value fuzzy, Gnus will
use a fuzzy string comparison algorithm on the subjects (see
Fuzzy
Matching).
gnus-simplify-subject-fuzzy-regexpgnus-simplify-ignored-prefixesgnus-summary-gather-subject-limit to
something as low as 10, you might consider setting this
variable to something sensible:
(setq gnus-simplify-ignored-prefixes
(concat
"\\`\\[?\\("
(mapconcat
'identity
'("looking"
"wanted" "followup" "summary\\( of\\)?"
"help" "query" "problem" "question"
"answer" "reference" "announce"
"How can I" "How to" "Comparison of"
;; ...
)
"\\|")
"\\)\\s *\\("
(mapconcat 'identity
'("for" "for reference" "with" "about")
"\\|")
"\\)?\\]?:?[ \t]*"))
All words that match this regexp will be removed before
comparing two subjects.
gnus-simplify-subject-functionsnil, this variable overrides
gnus-summary-gather-subject-limit. This variable
should be a list of functions to apply to the
Subject string iteratively to arrive at the
simplified version of the string.
Useful functions to put in this list include:
gnus-simplify-subject-regnus-simplify-subject-fuzzygnus-simplify-whitespacegnus-simplify-all-whitespaceYou may also write your own functions, of
course.
gnus-summary-gather-exclude-subjectgnus-summary-gather-exclude-subject to say what
subjects should be excluded from the gathering process.gnus-summary-thread-gathering-functionSubject
headers. This means that totally unrelated articles may end
up in the same “thread”, which is confusing. An
alternate approach is to look at all the
Message-IDs in all the References
headers to find matches. This will ensure that no gathered
threads ever include unrelated articles, but it also means
that people who have posted with broken newsreaders won't be
gathered properly. The choice is yours—plague or
cholera:
gnus-gather-threads-by-subjectSubjects exclusively.gnus-gather-threads-by-referencesReferences headers
exclusively.If you want to test gathering by References,
you could say something like:
(setq gnus-summary-thread-gathering-function
'gnus-gather-threads-by-references)